﻿using HMEngine.HMComponents;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace HMEngine.HMEffects {
    public abstract class HMEffect : IHMLoadable {
        private readonly string myAsset;

        internal Effect Effect { get; private set; }

        protected HMEffect(string asset) { myAsset = asset; }

        public abstract void SetParameters(IHMRenderable renderable);

        public virtual void LoadContent(GraphicsDevice myDevice, ContentManager myLoader) { Effect = myLoader.Load<Effect>(myAsset); }

        public abstract void UnloadContent();
    }
}